package com.ning.farm_income_back.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ning.farm_income_back.domain.Users;
import com.ning.farm_income_back.mapper.UsersMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service//表示它是一个 Spring 管理的服务层组件
public class UsersService {

    @Autowired
    UsersMapper usersMapper;

    /**
     * 分页查询用户列表
     *
     * @param users    查询条件对象（可包含用户名、角色等筛选条件）
     * @param pageNum  当前页码（从1开始）
     * @param pageSize
     * @return PageInfo<Users> 包含分页信息的分页结果对象
     * <p>
     * 使用说明：
     * 1. 调用PageHelper.startPage设置分页参数
     * 2. 执行查询后会返回包含分页信息的结果集
     * 3. 每页固定显示3条记录，按id降序排列
     */
    public PageInfo<Users> getPage(Users users, Integer pageNum, Integer pageSize) {

        PageHelper.startPage(pageNum,pageSize,"user_id desc ");

        List<Users> list =  usersMapper.selectBy(users);

        return new PageInfo<>(list);
    }

    //新增或修改
    public void addOrUpdateUser(Users users) {
        if(users.getUserId()!=null){
            usersMapper.updateByPrimaryKeySelective(users);
        }else{
            users.setPasswordHash("123456");
            users.setStatus("normal");
            usersMapper.insert(users);
        }
    }

    //更新状态
    public void updateStatus(Users users) {
        if(users.getStatus().equals("normal") ){
            users.setStatus("normal");
        }else{
            users.setStatus("disabled");
        }
        usersMapper.updateByPrimaryKeySelective(users);
    }

    //删除用户
    public void deleteUser(Integer id) {
        usersMapper.deleteByPrimaryKey(id.longValue());
    }

    //获取用户信息
    public Users getUser(String username) {
        return usersMapper.selectByUsername(username);
    }
}
